package com.guigu.youxuan.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author liweixin
 * @since 2024-05-15
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("order_info")
public class OrderInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单ID
     */
    @TableId(value = "order_id", type = IdType.AUTO)
    private Integer orderId;

    /**
     * 订单编号，格式为300+年月日+4位流水号，例如300202212160003
     */
    private String orderNumber;

    /**
     * 商户 ID（外键
     */
    private Integer merchantId;
    /**
     * 供应商 ID（外键
     */
    private Integer supplierId;

    /**
     * 下单用户ID 外键
     */
    private Integer sysUsersId;

    /**
     * 总数量
     */
    private Integer totalAmount;

    /**
     * 总金额
     */
    private BigDecimal totalPrice;

//    /**
//     * 订单状态（1：待付款，2：待发货，3：已发货，4：已完成，5：已取消
//     */
//    private Integer status;

    /**
     * 是否启用，1表示启用，0表示禁用
     */
    private Integer onOff;

    /**
     * 支付方式，P002-1（余额支付）、P002-2（微信支付）、P003（现金支付
     */
    private String payMethod;

    /**
     * 配送标志，P001-1（待付款）、P001-2（待发货）、P001-3（已收货）、P001-4（待发货）、P001-5（已收货
     */
    private String conveyTag;

    /**
     * 支付标志，K002-1（等待支付）、K002-2（支付失败）、K002-3（支付成功
     */
    private String payTag;

    /**
     * 退货理由
     */
    private String backReason;

    /**
     * 退货标志
     */
    private String backTag;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 删除标记（0:不可用 1:可用）
     */
    private Byte isDeleted;
}
